package com.timestored.blueprint;
import javax.swing.*;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;

public enum BlueprintIcon {

    ADD_CLIP('\uF101'),
    ADD_COLUMN_LEFT('\uF102'),
    ADD_COLUMN_RIGHT('\uF103'),
    ADD_LOCATION('\uF104'),
    ADD_ROW_BOTTOM('\uF105'),
    ADD_ROW_TOP('\uF106'),
    ADD_TO_ARTIFACT('\uF107'),
    ADD_TO_FOLDER('\uF108'),
    ADD('\uF109'),
    AIMPOINTS_TARGET('\uF335'),
    AIRPLANE('\uF10A'),
    ALIGN_CENTER('\uF10B'),
    ALIGN_JUSTIFY('\uF10C'),
    ALIGN_LEFT('\uF10D'),
    ALIGN_RIGHT('\uF10E'),
    ALIGNMENT_BOTTOM('\uF10F'),
    ALIGNMENT_HORIZONTAL_CENTER('\uF110'),
    ALIGNMENT_LEFT('\uF111'),
    ALIGNMENT_RIGHT('\uF112'),
    ALIGNMENT_TOP('\uF113'),
    ALIGNMENT_VERTICAL_CENTER('\uF114'),
    AMMUNITION('\uF342'),
    ANCHOR('\uF330'),
    ANNOTATION('\uF115'),
    ANTENNA('\uF116'),
    APP_HEADER('\uF117'),
    APPLICATION('\uF118'),
    APPLICATIONS('\uF119'),
    ARCHIVE('\uF11A'),
    AREA_OF_INTEREST('\uF11B'),
    ARRAY_BOOLEAN('\uF11C'),
    ARRAY_DATE('\uF11D'),
    ARRAY_FLOATING_POINT('\uF32D'),
    ARRAY_NUMERIC('\uF11E'),
    ARRAY_STRING('\uF11F'),
    ARRAY_TIMESTAMP('\uF120'),
    ARRAY('\uF121'),
    ARROW_BOTTOM_LEFT('\uF122'),
    ARROW_BOTTOM_RIGHT('\uF123'),
    ARROW_DOWN('\uF124'),
    ARROW_LEFT('\uF125'),
    ARROW_RIGHT('\uF126'),
    ARROW_TOP_LEFT('\uF127'),
    ARROW_TOP_RIGHT('\uF128'),
    ARROW_UP('\uF129'),
    ARROWS_HORIZONTAL('\uF12A'),
    ARROWS_VERTICAL('\uF12B'),
    ASTERISK('\uF12C'),
    AT('\uF331'),
    AUTOMATIC_UPDATES('\uF12D'),
    AXLE('\uF338'),
    BACKLINK('\uF12E'),
    BADGE('\uF12F'),
    BAN_CIRCLE('\uF130'),
    BANK_ACCOUNT('\uF131'),
    BARCODE('\uF132'),
    BLANK('\uF133'),
    BLOCKED_PERSON('\uF134'),
    BOLD('\uF135'),
    BOOK('\uF136'),
    BOOKMARK('\uF137'),
    BOX('\uF138'),
    BRIEFCASE('\uF139'),
    BRING_DATA('\uF13A'),
    BUG('\uF32E'),
    BUGGY('\uF13B'),
    BUILD('\uF13C'),
    CALCULATOR('\uF13D'),
    CALENDAR('\uF13E'),
    CAMERA('\uF13F'),
    CARET_DOWN('\uF140'),
    CARET_LEFT('\uF141'),
    CARET_RIGHT('\uF142'),
    CARET_UP('\uF143'),
    CARGO_SHIP('\uF144'),
    CELL_TOWER('\uF145'),
    CHANGES('\uF146'),
    CHART('\uF147'),
    CHAT('\uF148'),
    CHEVRON_BACKWARD('\uF149'),
    CHEVRON_DOWN('\uF14A'),
    CHEVRON_FORWARD('\uF14B'),
    CHEVRON_LEFT('\uF14C'),
    CHEVRON_RIGHT('\uF14D'),
    CHEVRON_UP('\uF14E'),
    CIRCLE_ARROW_DOWN('\uF14F'),
    CIRCLE_ARROW_LEFT('\uF150'),
    CIRCLE_ARROW_RIGHT('\uF151'),
    CIRCLE_ARROW_UP('\uF152'),
    CIRCLE('\uF153'),
    CITATION('\uF154'),
    CLEAN('\uF155'),
    CLIP('\uF156'),
    CLIPBOARD('\uF157'),
    CLOUD_DOWNLOAD('\uF158'),
    CLOUD_UPLOAD('\uF159'),
    CLOUD('\uF15A'),
    CODE_BLOCK('\uF15B'),
    CODE('\uF15C'),
    COG('\uF15D'),
    COLLAPSE_ALL('\uF15E'),
    COLOR_FILL('\uF328'),
    COLUMN_LAYOUT('\uF15F'),
    COMMENT('\uF160'),
    COMPARISON('\uF161'),
    COMPASS('\uF162'),
    COMPRESSED('\uF163'),
    CONFIRM('\uF164'),
    CONSOLE('\uF165'),
    CONTRAST('\uF166'),
    CONTROL('\uF167'),
    CREDIT_CARD('\uF168'),
    CROSS_CIRCLE('\uF336'),
    CROSS('\uF169'),
    CROWN('\uF16A'),
    CUBE_ADD('\uF16B'),
    CUBE_REMOVE('\uF16C'),
    CUBE('\uF16D'),
    CURVED_RANGE_CHART('\uF16E'),
    CUT('\uF16F'),
    CYCLE('\uF170'),
    DASHBOARD('\uF171'),
    DATA_CONNECTION('\uF172'),
    DATA_LINEAGE('\uF173'),
    DATABASE('\uF174'),
    DELETE('\uF175'),
    DELTA('\uF176'),
    DERIVE_COLUMN('\uF177'),
    DESKTOP('\uF178'),
    DETECTION('\uF341'),
    DIAGNOSIS('\uF179'),
    DIAGRAM_TREE('\uF17A'),
    DIRECTION_LEFT('\uF17B'),
    DIRECTION_RIGHT('\uF17C'),
    DISABLE('\uF17D'),
    DIVIDE('\uF327'),
    DOCUMENT_OPEN('\uF17E'),
    DOCUMENT_SHARE('\uF17F'),
    DOCUMENT('\uF180'),
    DOLLAR('\uF181'),
    DOT('\uF182'),
    DOUBLE_CARET_HORIZONTAL('\uF183'),
    DOUBLE_CARET_VERTICAL('\uF184'),
    DOUBLE_CHEVRON_DOWN('\uF185'),
    DOUBLE_CHEVRON_LEFT('\uF186'),
    DOUBLE_CHEVRON_RIGHT('\uF187'),
    DOUBLE_CHEVRON_UP('\uF188'),
    DOUGHNUT_CHART('\uF189'),
    DOWNLOAD('\uF18A'),
    DRAG_HANDLE_HORIZONTAL('\uF18B'),
    DRAG_HANDLE_VERTICAL('\uF18C'),
    DRAW('\uF18D'),
    DRAWER_LEFT_FILLED('\uF18E'),
    DRAWER_LEFT('\uF18F'),
    DRAWER_RIGHT_FILLED('\uF190'),
    DRAWER_RIGHT('\uF191'),
    DRIVE_TIME('\uF192'),
    DUPLICATE('\uF193'),
    EDIT('\uF194'),
    EJECT('\uF195'),
    EMOJI('\uF196'),
    ENDORSED('\uF197'),
    ENVELOPE('\uF198'),
    EQUALS('\uF199'),
    ERASER('\uF19A'),
    ERROR('\uF19B'),
    EURO('\uF19C'),
    EXCHANGE('\uF19D'),
    EXCLUDE_ROW('\uF19E'),
    EXPAND_ALL('\uF19F'),
    EXPORT('\uF1A0'),
    EYE_OFF('\uF1A1'),
    EYE_ON('\uF1A2'),
    EYE_OPEN('\uF1A3'),
    FAST_BACKWARD('\uF1A4'),
    FAST_FORWARD('\uF1A5'),
    FEED_SUBSCRIBED('\uF1A6'),
    FEED('\uF1A7'),
    FILM('\uF1A8'),
    FILTER_KEEP('\uF1A9'),
    FILTER_LIST('\uF1AA'),
    FILTER_OPEN('\uF1AB'),
    FILTER_REMOVE('\uF1AC'),
    FILTER('\uF1AD'),
    FLAG('\uF1AE'),
    FLAME('\uF1AF'),
    FLASH('\uF1B0'),
    FLOATING_POINT('\uF32C'),
    FLOPPY_DISK('\uF1B1'),
    FLOW_BRANCH('\uF1B2'),
    FLOW_END('\uF1B3'),
    FLOW_LINEAR('\uF1B4'),
    FLOW_REVIEW_BRANCH('\uF1B5'),
    FLOW_REVIEW('\uF1B6'),
    FLOWS('\uF1B7'),
    FOLDER_CLOSE('\uF1B8'),
    FOLDER_NEW('\uF1B9'),
    FOLDER_OPEN('\uF1BA'),
    FOLDER_SHARED_OPEN('\uF1BB'),
    FOLDER_SHARED('\uF1BC'),
    FOLLOWER('\uF1BD'),
    FOLLOWING('\uF1BE'),
    FONT('\uF1BF'),
    FORK('\uF1C0'),
    FORM('\uF1C1'),
    FUEL('\uF323'),
    FULL_CIRCLE('\uF1C2'),
    FULL_STACKED_CHART('\uF1C3'),
    FULLSCREEN('\uF1C4'),
    FUNCTION('\uF1C5'),
    GANTT_CHART('\uF1C6'),
    GEOFENCE('\uF1C7'),
    GEOLOCATION('\uF1C8'),
    GEOSEARCH('\uF1C9'),
    GIT_BRANCH('\uF1CA'),
    GIT_COMMIT('\uF1CB'),
    GIT_MERGE('\uF1CC'),
    GIT_NEW_BRANCH('\uF1CD'),
    GIT_PULL('\uF1CE'),
    GIT_PUSH('\uF1CF'),
    GIT_REPO('\uF1D0'),
    GLASS('\uF1D1'),
    GLOBE_NETWORK('\uF1D2'),
    GLOBE('\uF1D3'),
    GRAPH_REMOVE('\uF1D4'),
    GRAPH('\uF1D5'),
    GREATER_THAN_OR_EQUAL_TO('\uF1D6'),
    GREATER_THAN('\uF1D7'),
    GRID_VIEW('\uF1D8'),
    GRID('\uF1D9'),
    GROUP_OBJECTS('\uF1DA'),
    GROUPED_BAR_CHART('\uF1DB'),
    HAND_DOWN('\uF1DC'),
    HAND_LEFT('\uF1DD'),
    HAND_RIGHT('\uF1DE'),
    HAND_UP('\uF1DF'),
    HAND('\uF1E0'),
    HAT('\uF1E1'),
    HEADER_ONE('\uF1E2'),
    HEADER_THREE('\uF1E3'),
    HEADER_TWO('\uF1E4'),
    HEADER('\uF1E5'),
    HEADSET('\uF1E6'),
    HEART_BROKEN('\uF1E7'),
    HEART('\uF1E8'),
    HEAT_GRID('\uF1E9'),
    HEATMAP('\uF1EA'),
    HELICOPTER('\uF1EB'),
    HELP('\uF1EC'),
    HELPER_MANAGEMENT('\uF1ED'),
    HIGH_PRIORITY('\uF1EE'),
    HIGH_VOLTAGE_POLE('\uF333'),
    HIGHLIGHT('\uF1EF'),
    HISTORY('\uF1F0'),
    HOME('\uF1F1'),
    HORIZONTAL_BAR_CHART_ASC('\uF1F2'),
    HORIZONTAL_BAR_CHART_DESC('\uF1F3'),
    HORIZONTAL_BAR_CHART('\uF1F4'),
    HORIZONTAL_DISTRIBUTION('\uF1F5'),
    HORIZONTAL_INBETWEEN('\uF329'),
    HURRICANE('\uF1F6'),
    ID_NUMBER('\uF1F7'),
    IMAGE_ROTATE_LEFT('\uF1F8'),
    IMAGE_ROTATE_RIGHT('\uF1F9'),
    IMPORT('\uF1FA'),
    INBOX_FILTERED('\uF1FB'),
    INBOX_GEO('\uF1FC'),
    INBOX_SEARCH('\uF1FD'),
    INBOX_UPDATE('\uF1FE'),
    INBOX('\uF1FF'),
    INFO_SIGN('\uF200'),
    INHERITANCE('\uF201'),
    INHERITED_GROUP('\uF202'),
    INNER_JOIN('\uF203'),
    INSERT('\uF204'),
    INTELLIGENCE('\uF337'),
    INTERSECTION('\uF205'),
    IP_ADDRESS('\uF206'),
    ISSUE_CLOSED('\uF207'),
    ISSUE_NEW('\uF208'),
    ISSUE('\uF209'),
    ITALIC('\uF20A'),
    JOIN_TABLE('\uF20B'),
    KEY_BACKSPACE('\uF20C'),
    KEY_COMMAND('\uF20D'),
    KEY_CONTROL('\uF20E'),
    KEY_DELETE('\uF20F'),
    KEY_ENTER('\uF210'),
    KEY_ESCAPE('\uF211'),
    KEY_OPTION('\uF212'),
    KEY_SHIFT('\uF213'),
    KEY_TAB('\uF214'),
    KEY('\uF215'),
    KNOWN_VEHICLE('\uF216'),
    LAB_TEST('\uF217'),
    LABEL('\uF218'),
    LAYER_OUTLINE('\uF219'),
    LAYER('\uF21A'),
    LAYERS('\uF21B'),
    LAYOUT_AUTO('\uF21C'),
    LAYOUT_BALLOON('\uF21D'),
    LAYOUT_CIRCLE('\uF21E'),
    LAYOUT_GRID('\uF21F'),
    LAYOUT_GROUP_BY('\uF220'),
    LAYOUT_HIERARCHY('\uF221'),
    LAYOUT_LINEAR('\uF222'),
    LAYOUT_SKEW_GRID('\uF223'),
    LAYOUT_SORTED_CLUSTERS('\uF224'),
    LAYOUT('\uF225'),
    LEARNING('\uF226'),
    LEFT_JOIN('\uF227'),
    LENGTHEN_TEXT('\uF33E'),
    LESS_THAN_OR_EQUAL_TO('\uF228'),
    LESS_THAN('\uF229'),
    LIFESAVER('\uF22A'),
    LIGHTBULB('\uF22B'),
    LIGHTNING('\uF22C'),
    LINK('\uF22D'),
    LIST_COLUMNS('\uF22E'),
    LIST_DETAIL_VIEW('\uF22F'),
    LIST('\uF230'),
    LOCATE('\uF231'),
    LOCK('\uF232'),
    LOCOMOTIVE('\uF33B'),
    LOG_IN('\uF233'),
    LOG_OUT('\uF234'),
    LOW_VOLTAGE_POLE('\uF332'),
    MANUAL('\uF235'),
    MANUALLY_ENTERED_DATA('\uF236'),
    MANY_TO_MANY('\uF237'),
    MANY_TO_ONE('\uF238'),
    MAP_CREATE('\uF239'),
    MAP_MARKER('\uF23A'),
    MAP('\uF23B'),
    MAXIMIZE('\uF23C'),
    MEDIA('\uF23D'),
    MENU_CLOSED('\uF23E'),
    MENU_OPEN('\uF23F'),
    MENU('\uF240'),
    MERGE_COLUMNS('\uF241'),
    MERGE_LINKS('\uF242'),
    MINIMIZE('\uF243'),
    MINUS('\uF244'),
    MOBILE_PHONE('\uF245'),
    MOBILE_VIDEO('\uF246'),
    MODAL_FILLED('\uF247'),
    MODAL('\uF248'),
    MODEL('\uF33D'),
    MOON('\uF249'),
    MORE('\uF24A'),
    MOUNTAIN('\uF24B'),
    MOVE('\uF24C'),
    MUGSHOT('\uF24D'),
    MULTI_SELECT('\uF24E'),
    MUSIC('\uF24F'),
    NEST('\uF250'),
    NEW_DRAWING('\uF251'),
    NEW_GRID_ITEM('\uF252'),
    NEW_LAYER('\uF253'),
    NEW_LAYERS('\uF254'),
    NEW_LINK('\uF255'),
    NEW_OBJECT('\uF256'),
    NEW_PERSON('\uF257'),
    NEW_PRESCRIPTION('\uF258'),
    NEW_TEXT_BOX('\uF259'),
    NINJA('\uF25A'),
    NOT_EQUAL_TO('\uF25B'),
    NOTIFICATIONS_SNOOZE('\uF25C'),
    NOTIFICATIONS_UPDATED('\uF25D'),
    NOTIFICATIONS('\uF25E'),
    NUMBERED_LIST('\uF25F'),
    NUMERICAL('\uF260'),
    OFFICE('\uF261'),
    OFFLINE('\uF262'),
    OIL_FIELD('\uF263'),
    ONE_COLUMN('\uF264'),
    ONE_TO_MANY('\uF265'),
    ONE_TO_ONE('\uF266'),
    OPEN_APPLICATION('\uF32B'),
    OUTDATED('\uF267'),
    PAGE_LAYOUT('\uF268'),
    PANEL_STATS('\uF269'),
    PANEL_TABLE('\uF26A'),
    PAPERCLIP('\uF26B'),
    PARAGRAPH('\uF26C'),
    PATH_SEARCH('\uF26D'),
    PATH('\uF26E'),
    PAUSE('\uF26F'),
    PEOPLE('\uF270'),
    PERCENTAGE('\uF271'),
    PERSON('\uF272'),
    PHONE('\uF273'),
    PIE_CHART('\uF274'),
    PIN('\uF275'),
    PIVOT_TABLE('\uF276'),
    PIVOT('\uF277'),
    PLAY('\uF278'),
    PLAYBOOK('\uF324'),
    PLUS('\uF279'),
    POLYGON_FILTER('\uF27A'),
    POWER('\uF27B'),
    PREDICTIVE_ANALYSIS('\uF27C'),
    PRESCRIPTION('\uF27D'),
    PRESENTATION('\uF27E'),
    PRINT('\uF27F'),
    PROJECTS('\uF280'),
    PROPERTIES('\uF281'),
    PROPERTY('\uF282'),
    PUBLISH_FUNCTION('\uF283'),
    PULSE('\uF284'),
    RAIN('\uF285'),
    RANDOM('\uF286'),
    RECORD('\uF287'),
    RECT_HEIGHT('\uF325'),
    RECT_WIDTH('\uF326'),
    RECTANGLE('\uF321'),
    REDO('\uF288'),
    REFRESH('\uF289'),
    REGEX('\uF32F'),
    REGRESSION_CHART('\uF28A'),
    REMOVE_COLUMN_LEFT('\uF28B'),
    REMOVE_COLUMN_RIGHT('\uF28C'),
    REMOVE_COLUMN('\uF28D'),
    REMOVE_ROW_BOTTOM('\uF28E'),
    REMOVE_ROW_TOP('\uF28F'),
    REMOVE('\uF290'),
    REPEAT('\uF291'),
    RESET('\uF292'),
    RESOLVE('\uF293'),
    RIG('\uF294'),
    RIGHT_JOIN('\uF295'),
    RING('\uF296'),
    ROCKET_SLANT('\uF297'),
    ROCKET('\uF298'),
    ROTATE_DOCUMENT('\uF299'),
    ROTATE_PAGE('\uF29A'),
    ROUTE('\uF29B'),
    SATELLITE('\uF29C'),
    SAVED('\uF29D'),
    SCATTER_PLOT('\uF29E'),
    SEARCH_AROUND('\uF29F'),
    SEARCH_TEMPLATE('\uF2A0'),
    SEARCH_TEXT('\uF2A1'),
    SEARCH('\uF2A2'),
    SEGMENTED_CONTROL('\uF2A3'),
    SELECT('\uF2A4'),
    SELECTION('\uF2A5'),
    SEND_MESSAGE('\uF2A6'),
    SEND_TO_GRAPH('\uF2A7'),
    SEND_TO_MAP('\uF2A8'),
    SEND_TO('\uF2A9'),
    SENSOR('\uF33C'),
    SERIES_ADD('\uF2AA'),
    SERIES_CONFIGURATION('\uF2AB'),
    SERIES_DERIVED('\uF2AC'),
    SERIES_FILTERED('\uF2AD'),
    SERIES_SEARCH('\uF2AE'),
    SETTINGS('\uF2AF'),
    SHAPES('\uF2B0'),
    SHARE('\uF2B1'),
    SHARED_FILTER('\uF2B2'),
    SHIELD('\uF2B3'),
    SHIP('\uF2B4'),
    SHOP('\uF2B5'),
    SHOPPING_CART('\uF2B6'),
    SHORTEN_TEXT('\uF33F'),
    SIGNAL_SEARCH('\uF2B7'),
    SIM_CARD('\uF2B8'),
    SLASH('\uF2B9'),
    SMALL_CROSS('\uF2BA'),
    SMALL_INFO_SIGN('\uF334'),
    SMALL_MINUS('\uF2BB'),
    SMALL_PLUS('\uF2BC'),
    SMALL_SQUARE('\uF2BD'),
    SMALL_TICK('\uF2BE'),
    SNOWFLAKE('\uF2BF'),
    SOCIAL_MEDIA('\uF2C0'),
    SORT_ALPHABETICAL_DESC('\uF2C1'),
    SORT_ALPHABETICAL('\uF2C2'),
    SORT_ASC('\uF2C3'),
    SORT_DESC('\uF2C4'),
    SORT_NUMERICAL_DESC('\uF2C5'),
    SORT_NUMERICAL('\uF2C6'),
    SORT('\uF2C7'),
    SPELL_CHECK('\uF340'),
    SPLIT_COLUMNS('\uF2C8'),
    SQUARE('\uF2C9'),
    STACKED_CHART('\uF2CA'),
    STADIUM_GEOMETRY('\uF2CB'),
    STAR_EMPTY('\uF2CC'),
    STAR('\uF2CD'),
    STEP_BACKWARD('\uF2CE'),
    STEP_CHART('\uF2CF'),
    STEP_FORWARD('\uF2D0'),
    STOP('\uF2D1'),
    STOPWATCH('\uF2D2'),
    STRIKETHROUGH('\uF2D3'),
    STYLE('\uF2D4'),
    SUBSCRIPT('\uF339'),
    SUPERSCRIPT('\uF33A'),
    SWAP_HORIZONTAL('\uF2D5'),
    SWAP_VERTICAL('\uF2D6'),
    SWITCH('\uF2D7'),
    SYMBOL_CIRCLE('\uF2D8'),
    SYMBOL_CROSS('\uF2D9'),
    SYMBOL_DIAMOND('\uF2DA'),
    SYMBOL_RECTANGLE('\uF322'),
    SYMBOL_SQUARE('\uF2DB'),
    SYMBOL_TRIANGLE_DOWN('\uF2DC'),
    SYMBOL_TRIANGLE_UP('\uF2DD'),
    SYRINGE('\uF2DE'),
    TAG('\uF2DF'),
    TAKE_ACTION('\uF2E0'),
    TANK('\uF2E1'),
    TARGET('\uF2E2'),
    TAXI('\uF2E3'),
    TEMPERATURE('\uF2E4'),
    TEXT_HIGHLIGHT('\uF2E5'),
    TH_DERIVED('\uF2E6'),
    TH_DISCONNECT('\uF2E7'),
    TH_FILTERED('\uF2E8'),
    TH_LIST('\uF2E9'),
    TH('\uF2EA'),
    THIRD_PARTY('\uF2EB'),
    THUMBS_DOWN('\uF2EC'),
    THUMBS_UP('\uF2ED'),
    TICK_CIRCLE('\uF2EE'),
    TICK('\uF2EF'),
    TIME('\uF2F0'),
    TIMELINE_AREA_CHART('\uF2F1'),
    TIMELINE_BAR_CHART('\uF2F2'),
    TIMELINE_EVENTS('\uF2F3'),
    TIMELINE_LINE_CHART('\uF2F4'),
    TINT('\uF2F5'),
    TORCH('\uF2F6'),
    TRACTOR('\uF2F7'),
    TRAIN('\uF2F8'),
    TRANSLATE('\uF2F9'),
    TRASH('\uF2FA'),
    TREE('\uF2FB'),
    TRENDING_DOWN('\uF2FC'),
    TRENDING_UP('\uF2FD'),
    TRUCK('\uF2FE'),
    TWO_COLUMNS('\uF2FF'),
    UNARCHIVE('\uF300'),
    UNDERLINE('\uF301'),
    UNDO('\uF302'),
    UNGROUP_OBJECTS('\uF303'),
    UNKNOWN_VEHICLE('\uF304'),
    UNLOCK('\uF305'),
    UNPIN('\uF306'),
    UNRESOLVE('\uF307'),
    UPDATED('\uF308'),
    UPLOAD('\uF309'),
    USER('\uF30A'),
    VARIABLE('\uF30B'),
    VERTICAL_BAR_CHART_ASC('\uF30C'),
    VERTICAL_BAR_CHART_DESC('\uF30D'),
    VERTICAL_DISTRIBUTION('\uF30E'),
    VERTICAL_INBETWEEN('\uF32A'),
    VIDEO('\uF30F'),
    VIRUS('\uF310'),
    VOLUME_DOWN('\uF311'),
    VOLUME_OFF('\uF312'),
    VOLUME_UP('\uF313'),
    WALK('\uF314'),
    WARNING_SIGN('\uF315'),
    WATERFALL_CHART('\uF316'),
    WAVES('\uF317'),
    WIDGET_BUTTON('\uF318'),
    WIDGET_FOOTER('\uF319'),
    WIDGET_HEADER('\uF31A'),
    WIDGET('\uF31B'),
    WIND('\uF31C'),
    WRENCH('\uF31D'),
    ZOOM_IN('\uF31E'),
    ZOOM_OUT('\uF31F'),
    ZOOM_TO_FIT('\uF320'),

    ;

    private final char glyph;

    BlueprintIcon(char glyph) {
        this.glyph = glyph;
    }

    public char getGlyph() { return glyph; }

    public ImageIcon get(int size, Color color) {
        return IconFontRenderer.get(glyph, size, color);
    }

    public ImageIcon get16(Color c) { return get(16, c); }
    public ImageIcon get24(Color c) { return get(24, c); }
    public ImageIcon get32(Color c) { return get(32, c); }
    
    private static final Map<String, BlueprintIcon> LOOKUP = new HashMap<>();

    static {
        for (BlueprintIcon icon : values()) {
            String k = normalize(icon.name());
            LOOKUP.put(k, icon);
        }
    }

    private static String normalize(String s) {
        return s.trim().replace('-', '_').toUpperCase();
    }

    /**
     * Reverse lookup: case-insensitive, hyphens or underscores allowed, 
     * matches canonical enum name.
     */
    public static BlueprintIcon fromString(String s) {
        if (s == null) {
            return null;
        }
        return LOOKUP.get(normalize(s));
    }

}
